The invention relates to transferring data from disk storage directly to a peripheral device.
A host computer often stores data for use by a peripheral device on a storage disk (for example, a hard disk). The host computer typically transfers the data to the peripheral device first by reading the data from the storage disk to host computer random access memory (RAM) over a SCSI (small computer system interface) bus, and then by transferring the data from the host computer RAM to the peripheral device over the same SCSI bus.
Some peripheral devices, such as pelboxes and scanners, require a sustained transfer of a large amount of data with the host computer. A pelbox is used to generate high resolution digital images from bit-mapped image data. The image data controls a laser that is scanned across a film which is simultaneously moved through the scan path of the laser. For optimal results, an entire image should be transferred without interruption. A pelbox typically has a local RAM buffer with only 4 Mbytes or 8 Mbytes of available memory; a typical pelbox image, on the other hand, requires on the order of about 300 Mbytes of memory storage. Therefore, for optimal results, the host computer must continue to update the local pelbox buffer with new image data until the entire image has been transferred to film.
If the host computer must respond to arbitrary interruptions, such as network traffic, system calls, or demands imposed by multi-processing or multi-tasking, the time required to transfer an entire data file may exceed allowable system delays, in which case the transfer will be corrupted. In the case of a pelbox, such data transfer failure would result in wasted film.
The inventors have realized that improved results can be achieved by transferring data from disk storage directly to the peripheral device.
In one aspect, the invention features a method for transferring data from disk storage directly to a peripheral device by sending to the peripheral device address information identifying disk storage locations where the data is stored, and sending to the peripheral device a command to initiate data transfer from disk storage directly to the peripheral device using the address information sent to the peripheral device.
In one preferred embodiment, the peripheral device is a pelbox and image data is transferred from disk storage directly to the pelbox.
The storage disk is preferably exclusively controlled by the peripheral device. The peripheral device preferably releases the storage disk from its exclusive control when the amount of unused data stored in peripheral device memory is greater than an upper threshold. The storage disk is preferably under the exclusive control of the peripheral device when the amount of unused data written to peripheral device memory is less than a lower threshold. Data identifying the data file may be transferred from disk storage directly to the peripheral device before the data file is completely written from the host computer to disk storage. Different sections of a data file may also be stored on more than one storage disk, and the different data sections may be transferred from each of the storage disks directly to the peripheral device over one or more communication channels. The data transferred to the peripheral device may be stored in a contiguous sequence of disk blocks or in more than one contiguous sequence of disk blocks with one or more non-transfer-data disk blocks interposed therebetween.
By this inventive data transfer method, the host computer is not involved in the real time data transfer between the peripheral device and disk storage. The maximum interrupt latency of the host computer therefore does not have to be considered in the design of the system and a smaller peripheral RAM can be used. Data travels from disk storage directly to the peripheral device, reducing data transfer time relative to methods in which data is first read into host computer RAM and subsequently transferred to the peripheral device. Also, since the host computer is not involved in the real time data transfer, a separate SCSI driver is not needed to enable the host computer to transfer data to the peripheral device.